<?php

/**
 * @author 
 * @copyright 2008
 */
$search_data = array(
	'status' => array(
		0 => 'скрыт',
		1 => 'показывается пользователям',
		2 => 'показывается всем'
		)
);
if(isset($_POST['action']))
{
	$action=$_POST['action'];
	unset($_POST['action']);
}
else
	$action=false;
if(isset($_REQUEST['p']))
	$p=intval($_REQUEST['p']);
else
	$p=0;
$tree_table = PFX."site_tree";
$content_table = PFX."site_content";
if(isset($_POST['item']))
{
	$item=$_POST['item'];
	unset($_POST['item']);
}
elseif(isset($_SESSION['item']))
{
	$item=$_SESSION['item'];
	unset($_SESSION['item']);
}
if(isset($item))
{
	foreach($item as $k=>$v)
	{
		$item[$k]=trim($v);
	}
	if($item['dir']=='')
	{
		$error=true;
		$error_text['dir']='Поле обязательно для заполнения!';
	}
	if($item['title']=='')
	{
		$error=true;
		$error_text['title']='Поле обязательно для заполнения!';
	}
	if($item['module']=='')
	{
		$error=true;
		$error_text['module']='Поле обязательно для заполнения!';
	}
	if($item['template']=='')
	{
		$error=true;
		$error_text['template']='Поле обязательно для заполнения!';
	}
	if($error==true)
	{
		$smarty->assign("error_text",$error_text);
		$smarty->assign("item",$item);
	}
	else
	{
		if($item['order_num']=='')
		{
			
			$max=$db->fetch_one("SELECT MAX(t.order_num) FROM $tree_table as t WHERE t.pid='".$item['pid']."' LIMIT 1");
			if($max!=false)
			{
				$item['order_num']=$max[0]+1;
			}
			else
				$item['order_num']=1;
		}
		
		// TODO: добавление или вставка в зависимости от наличия такой страницы в базе
		if($action!=false)
		{
			switch($action)
			{
				case 'add':
					$tree=		array('pid'=>$item['pid'],
								'alias'=>$item['alias'],
								'module'=>$item['module'],
								'template'=>$item['template'],
								'dir'=>$item['dir'],
								'order_num'=>$item['order_num'],
								'status'=>$item['status'],
								'type'=>$item['type'],
								'time'=>time());
					$db->insert($tree_table,$tree);
					$content=	array(
								'tree_id'=>$db->last_id(),
								'title'=>$item['title'],
								'menu_title'=>$item['menu_title'],
								'content'=>$item['content']);
					$db->insert($content_table,$content);
					break;
				case 'edit':
					$tree=		array('pid'=>$item['pid'],
								'alias'=>$item['alias'],
								'module'=>$item['module'],
								'template'=>$item['template'],
								'dir'=>$item['dir'],
								'order_num'=>$item['order_num'],
								'status'=>$item['status'],
								'type'=>$item['type'],
								'time'=>time());
					$clause="WHERE id='".$item['id']."'";
					$db->update($tree_table,$tree,$clause);
					$content=	array(
								'title'=>$item['title'],
								'menu_title'=>$item['menu_title'],
								'content'=>$item['content']);
					$clause="WHERE tree_id='".$item['id']."'";
					$db->update($content_table,$content,$clause);
					break;
				default:
					header('location:');
					break;
			}
		}
		
	}
}
$items=$db->fetch_array("SELECT t.*,c.title,c.menu_title FROM ".PFX."site_tree as t, ".PFX."site_content as c WHERE t.pid=$p AND t.id<>'0' AND c.tree_id=t.id ORDER BY t.order_num");
if($items!=false)
{
	foreach($items as $k=>$v)
	{
		$items[$k]['status_title'] = $search_data['status'][intval($v['status'])];
	}
	$smarty->assign("items",$items);
}
$parent=$db->fetch_one("SELECT t.*,c.title,c.menu_title,c.content FROM ".PFX."site_tree as t, ".PFX."site_content as c WHERE t.id='".$p."' AND c.tree_id=t.id LIMIT 1");
if($parent!=false)
{
	$parent['status_title'] = $search_data['status'][intval($parent['status'])];
	$smarty->assign("parent",$parent);
	$smarty->assign("item",$parent);
}
$smarty->assign("action","edit");
?>